package com.todo.strategy.offline.application.entity.bo;

import com.todo.common.common.enums.AllowedCommentEnum;
import com.todo.strategy.common.enums.StrategyStatusEnum;
import com.todo.strategy.common.enums.StrategyTypeEnum;
import com.todo.strategy.common.enums.TravelDayTypeEnum;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @author azhebuxing
 * @date 2024/5/6 15:20
 * @description
 */
@Data
public class PlatformStrategyBO {
    /**
     * 主键id
     */
    private Long strategyId;
    /**
     * 标题
     */
    private String title;
    /**
     * 推荐原因
     */
    private String recommendDesc;
    /**
     * 攻略类型
     */
    private StrategyTypeEnum strategyType;
    /**
     * 旅游天数类型：一天一夜、两天一夜等
     */
    private TravelDayTypeEnum travelTimeType;
    /**
     * 推荐旅游月份
     */
    private List<String> recommendMonth;
    /**
     * 主图
     */
    private String mainImg;
    /**
     * 省份
     */
    private String province;
    /**
     * 城市
     */
    private String city;
    /**
     * 预计花费/元
     */
    private Integer moneyCost;
    /**
     * 预计游玩时长/小时
     */
    private Integer timeCost;
    /**
     * 综合评分
     */
    private Integer score;
    /**
     * 状态
     */
    private StrategyStatusEnum status;
    /**
     * 是否免费
     */
    private Integer isFree;
    /**
     * 是否允许评论
     */
    private AllowedCommentEnum allowComment;
    /**
     * 复用数量
     */
    private Integer referenceCount;
    /**
     * 浏览量
     */
    private Integer viewCount;
    /**
     * 点赞量
     */
    private Integer likeCount;
    /**
     * 收藏量
     */
    private Integer collectCount;
    /**
     * 评论数
     */
    private Integer commentCount;
    /**
     * 创建人
     */
    private String createUser;
    /**
     * 最后更新人
     */
    private String lastUpdateUser;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新时间
     */
    private Date updateTime;

    public Boolean baseCheck() {
        if (title == null || recommendDesc == null || strategyType == null || travelTimeType == null || city == null || province == null) {
            return false;
        }
        return true;
    }
}
